﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dream
{
    class Program
    {
/*        在游戏中会出现很多种不同用途的 NPC，这些 NPC 有各自的存在的价值和作用，同时又具备一些共性的东西。
在开发 NPC 系统的时候，往往是需要提取共性，独立出一个父类，然后子类继承实现不同作用的 NPC。
分析：任务 NPC，商贩 NPC，铁匠 NPC，三种 NPC 的种类。
共有属性：npc 的名字，npc 的类型；
共有方法：都能和玩家交互(交谈)；*/

        static void Main(string[] args)
        {
            TaskNpc tc = new TaskNpc("白起",NPCType.Task,"去龙之峡谷杀掉一条冰暴龙王。");
            tc.Speak();

            Console.WriteLine("----------------------------------");

            TaskNpc tc1 = new TaskNpc("蒙恬",NPCType.Task,"帮我送一封信到咸阳城，作为报酬我会告诉你最天下最好的工匠在哪里");
            tc1.Speak1();

            Console.WriteLine("-----------------------------------");

            TaskNpc tc2 = new TaskNpc("李信", NPCType.Task, "天山雪莲");
            tc2.Speak2();

            Console.WriteLine("-----------------------------------");

            ShopNpc sn = new ShopNpc("范蠡",NPCType.Shop,"蟠桃");
            sn.Speak();

            Console.WriteLine("-----------------------------------");

            ShopNpc sn1 = new ShopNpc("吕不韦",NPCType.Shop,"天外陨石");
            sn1.Speak1();
            Console.WriteLine("-----------------------------------");

            ShopNpc sn2 = new ShopNpc("沈万三", NPCType.Shop, "承影剑");
            sn2.Speak2();

            Console.WriteLine("-----------------------------------");

            IronNpc iron = new IronNpc("欧治子",NPCType.Iron,"轩辕剑");
            iron.Speak();

            Console.WriteLine("-----------------------------------");
            IronNpc iron1 = new IronNpc("干将",NPCType.Iron,"修补大师");
            iron1.Speak1();
            Console.WriteLine("-----------------------------------");

            IronNpc iron2 = new IronNpc("徐夫人", NPCType.Iron, "重新打造");
            iron2.Speak2();
            Console.WriteLine("-----------------------------------");
        }
    }
}
